1
ปัญหาของประวัติที่แยกกัน
AI016Lesson 6
00:00

A ประวัติที่แยกกัน เกิดขึ้นเมื่อเส้นเวลาของคลังข้อมูล (repository) แยกออกเป็นหลายเส้นทางที่ไม่เป็นเชิงเส้น ซึ่งมักเกิดขึ้นเมื่อสาขาฟีเจอร์ (เช่น news-hotfix) และสาขาหลัก (main branch) พัฒนาไปอย่างอิสระ หลังจากแบ่งปันจุดกำเนิดร่วมกัน การแยกกันครั้งนี้ทำให้เกิดโครงสร้างภายในที่ซับซ้อนของภาพถ่าย (snapshots)

1. ตัวกระตุ้นการแยกกัน

การแยกกันเริ่มต้นเมื่อนักพัฒนาดำเนินการ git commit บนสาขาท้องถิ่น (local branch) ในขณะที่สาขาอัพสตรีม (upstream branch) ก็ได้รับภาพถ่ายใหม่ (เช่น การอัปเดตไฟล์ index.html) ซึ่งทำให้เกิด ช่องว่างทางโครงสร้าง (topological gap) ซึ่งงานของคุณในไฟล์ about/me.html ไม่ได้พึ่งพาสถานะโครงการล่าสุดอีกต่อไป

จุดเริ่มต้นร่วมกันหลัก (index.html)ฟีเจอร์ (news-2.html, me.html)การแยกกัน

2. ต้นทุนของการไม่เป็นเชิงเส้น

แม้ว่า Git จะจัดการกับการแยกกันโดยใช้ การรวมแบบวนซ้ำ (recursive merges)แต่ประวัติที่ได้ผลลัพธ์มักเต็มไปด้วยการรวมแบบ "Merge branch..." ซึ่งทำให้ ประวัติคลังข้อมูล (repository history) ยากต่อการตรวจสอบ เพราะลำดับการดำเนินการ git add และ git commit การดำเนินการผ่านไฟล์ต่าง ๆ เช่น news-2.html และ about/me.html กลายเป็นการสลับกันมองเห็นได้ชัดเจน

3. การขาดการเชื่อมโยงภาพถ่าย

ทุกครั้งที่ทำการคอมมิตจะสร้างภาพถ่ายแบบเต็มรูปแบบ ภาพถ่าย (snapshot)เมื่อประวัติแยกกัน โครงสร้างภายใน โครงสร้างภายใน (internal makeup) ของสาขาฟีเจอร์ของคุณขาดบริบทของข้อมูลที่เปลี่ยนแปลงพร้อมกันที่อื่น จำเป็นต้องใช้กลยุทธ์เช่นการเรเบส (rebasin) เพื่อปรับสมดุลเส้นเวลาของโปรเจกต์อีกครั้ง

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>